1. Field of the Invention
The present invention pertains to the field of computer systems. More particularly, this invention relates to allowing a computer system to be continuously available to users.
2. Background
Computer technology is continually advancing, providing computer systems with continually improved performance. This improved performance has allowed software applications to improve, resulting in better execution speeds and expanding the types of tasks which software is capable of performing. These improvements in computer and software technology have generated an increased use of computer systems and software in a wide variety of business, personal, and academic fields.
Many computer systems commercially available provide two power settings: Off and On. While the computer system is off, no computing operations can be performed by the system. Once the system power is turned on a "cold boot" occurs, during which the computer system initializes itself for system operation and begins execution of software applications stored in the system's memory. Having only Off and On power settings, however, results in several problems. One such problem is that the computer system must be turned on in order for the system to be available to the user to perform any functions. Typically, a user must be in attendance to manually turn the power back on. Thus, for example, if the computer system is to operate as a telephone answering machine, the computer system must be left on or turned on each time by the user whenever the user wants his or her answering machine to be operational.
An additional problem is the system's power consumption. When turned on, the computer system draws full power, even if the system is idle for an extended period of time, such as when waiting for a telephone call. Yet another problem is the length of time required by the system to perform a cold boot. A cold boot typically takes a lengthy period of time, which is problematic if the user needs immediate action by the computer. For example, if the user hears the phone ring and wants the computer system to answer the phone, the user must turn on the computer and wait for the proper program to begin running. This period of time is typically longer than the amount of time the calling individual will wait for someone to answer the phone prior to hanging up.
One solution to the problem of providing only Off and On power levels is to include intermediate power levels such as Standby or Suspend. Intermediate power levels can provide power conservation at reduced levels of system functionality. The Standby power level implies moderate power savings at nearly full system functionality, whereas the Suspend power level implies more limited system functionality and greater power savings. Not all computing systems need support both Suspend and Standby. These power levels are essentially labels for regions on the power conservation spectrum between full On and full Off. Standby represents that region closer to on, and Suspend represents that region closer to off. If the system is in an intermediate power state, it needs to restore full power to perform tasks requested by the user. The time required to restore full power is implementation-dependent but will generally be shorter for a Standby state than for a Suspend state. Furthermore, a system in a Suspend state may not be capable of responding to certain device interrupts that would cause a system in Standby to resume full power. The ability to respond to device interrupts is very important to achieve full availability of the computing system.
Portable and laptop computers often include support for extremely low-power Suspend modes. In a battery-powered system, this approach is necessary. However, on a desktop PC, there is less need for radical power savings when system capabilities could be substantially enhanced at slightly higher power levels.
As computer systems become more and more advanced, the functions they can perform become more and more beneficial to people in all fields, thereby allowing computer systems to become more integrated into our daily lives. However, as computer systems become more integrated into our daily lives, the length of time which these systems must be able to respond on demand becomes greater and greater, eventually reaching a point where the system should be able to respond on demand 24 hours a day. If the system is simply left on, such on-demand availability, however, results in a great deal of power consumption. Thus, it would be beneficial to provide a computer system which is available only on-demand, drawing full power only when required to perform system tasks. For example, a system which automatically receives facsimiles for the user when the user is not expecting any, or automatically faxes certain documents during off-hours to reduce long distance telephone line charges, without requiring the computer system to be left on.
Additionally, as individual users begin to rely more and more on computer systems, the reliability of computer systems should be maintained in accordance with this reliance. That is, the computer system should be available and operational as required by the user. Thus, it would be beneficial to provide a computer system which allows a user to program the computer system for specific actions which it should perform in his/her absence and then performs the actions when the specified time or event occurs. For example, the system user should be able to forget about having to power up the computer system at the required time to perform these actions, and should not be concerned with whether power failures have occurred between the time of programming and the time of activity.
Furthermore, as computer systems become more integrated into users'lives, it would be beneficial to provide a computer system which is tolerant of software and power failures. That is, a computer system which automatically recovers itself after a software application crashes or a power failure occurs.
The present invention provides for these and other advantageous results.